#pragma once

#include <string>
using std::wstring;

enum AlignStyle {NO_ALIGN, BY_LETTER, BY_MIX, BY_WORD}; 

class TextMetrics;
class AlignStrategy;
class WindowMetrics;
class Align
{
public: //interface
	bool IsRowLongerThanScreen(wstring& str);
	int FindCuttingPoint(wstring& str);
	bool IsSpaceAvailable(wstring& rowStr, wstring& concatenatingStr);

public: //getters and setters
	void SetAlignStyle(AlignStyle style);
	AlignStyle GetAlignStyle();

public: //constructors and destructors
	Align(void);
	~Align(void);
	void Init(TextMetrics* textMetrics, WindowMetrics* wm);

private: //Member variables
	TextMetrics* tm;
	AlignStyle style;
	AlignStrategy* align;
	WindowMetrics* wm;
};
